package com.jinmdz.fmis.api.api.model.funeral.negotiation;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jinmdz.fmis.core.annotation.AnDict;
import com.jinmdz.fmis.core.constant.EDictCode;
import com.jinmdz.fmis.dao.base.BaseItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

/**
 * 洽谈火化信息
 *
 * @author LiCongLu
 * @date 2020-02-16 16:22
 */
@ApiModel(value = "洽谈火化信息", description = "洽谈火化信息")
public class NegotiationCremationItem extends BaseItem {
    /**
     * 业务编码
     */
    @ApiModelProperty(value = "业务编码", name = "businessCode", position = 1)
    private String businessCode;

    /**
     * 火化炉类型编码
     */
    @ApiModelProperty(value = "火化炉类型编码", name = "furnaceTypeCode", position = 2)
    @JsonIgnore
    private Integer furnaceTypeCode;

    /**
     * 火化炉类型编码
     */
    @ApiModelProperty(value = "火化炉类型编码", name = "furnaceType", position = 3)
    @AnDict(dict = EDictCode.FURNACE_TYPE, ref = "furnaceTypeCode")
    private String furnaceType;

    /**
     * 火化炉编号
     */
    @ApiModelProperty(value = "火化炉编号", name = "furnaceCode", position = 4)
    private String furnaceCode;

    /**
     * 是否预约
     */
    @ApiModelProperty(value = "是否预约", name = "asAppointment", position = 5)
    private Integer asAppointment;

    /**
     * 预约日期
     */
    @ApiModelProperty(value = "预约日期", name = "appointmentDate", position = 6)
    @JsonFormat(pattern = yyyy_MM_dd)
    private Date appointmentDate;

    /**
     * 预约时间段
     */
    @ApiModelProperty(value = "预约时间段", name = "appointmentTimeSegment", position = 7)
    private String appointmentTimeSegment;

    /**
     * 火化证号
     */
    @ApiModelProperty(value = "火化证号", name = "cremationNo", position = 8)
    private String cremationNo;

    /**
     * 是否取走骨灰
     */
    @ApiModelProperty(value = "是否取走骨灰", name = "asTakeAsh", position = 9)
    private Integer asTakeAsh;

    /**
     * 骨灰处理方式编码
     */
    @ApiModelProperty(value = "骨灰处理方式编码", name = "ashHandleTypeCode", position = 10)
    @JsonIgnore
    private Integer ashHandleTypeCode;

    /**
     * 处理方式
     */
    @ApiModelProperty(value = "处理方式", name = "ashHandleType", position = 11)
    @AnDict(dict = EDictCode.ASHES_TREATMENT, ref = "ashHandleTypeCode")
    private String ashHandleType;

    /**
     * 骨灰去向编码
     */
    @ApiModelProperty(value = "骨灰去向编码", name = "ashWhereaboutsCode", position = 12)
    @JsonIgnore
    private Integer ashWhereaboutsCode;

    /**
     * 骨灰去向
     */
    @ApiModelProperty(value = "骨灰去向", name = "ashWhereabouts", position = 13)
    @AnDict(dict = EDictCode.ASHES_WHEREABOUTS, ref = "ashWhereaboutsCode")
    private String ashWhereabouts;

    /**
     * 业务费用与物品服务
     */
    @ApiModelProperty(value = "业务费用与物品服务", name = "charges", position = 14)
    private NegotiationBusinessCharges charges;

    public String getBusinessCode() {
        return businessCode;
    }

    public NegotiationCremationItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public Integer getFurnaceTypeCode() {
        return furnaceTypeCode;
    }

    public NegotiationCremationItem setFurnaceTypeCode(Integer furnaceTypeCode) {
        this.furnaceTypeCode = furnaceTypeCode;
        return this;
    }

    public String getFurnaceType() {
        return furnaceType;
    }

    public NegotiationCremationItem setFurnaceType(String furnaceType) {
        this.furnaceType = furnaceType;
        return this;
    }

    public String getFurnaceCode() {
        return furnaceCode;
    }

    public NegotiationCremationItem setFurnaceCode(String furnaceCode) {
        this.furnaceCode = furnaceCode;
        return this;
    }

    public Integer getAsAppointment() {
        return asAppointment;
    }

    public NegotiationCremationItem setAsAppointment(Integer asAppointment) {
        this.asAppointment = asAppointment;
        return this;
    }

    public Date getAppointmentDate() {
        return appointmentDate;
    }

    public NegotiationCremationItem setAppointmentDate(Date appointmentDate) {
        this.appointmentDate = appointmentDate;
        return this;
    }

    public String getAppointmentTimeSegment() {
        return appointmentTimeSegment;
    }

    public NegotiationCremationItem setAppointmentTimeSegment(String appointmentTimeSegment) {
        this.appointmentTimeSegment = appointmentTimeSegment;
        return this;
    }

    public String getCremationNo() {
        return cremationNo;
    }

    public NegotiationCremationItem setCremationNo(String cremationNo) {
        this.cremationNo = cremationNo;
        return this;
    }

    public Integer getAsTakeAsh() {
        return asTakeAsh;
    }

    public NegotiationCremationItem setAsTakeAsh(Integer asTakeAsh) {
        this.asTakeAsh = asTakeAsh;
        return this;
    }

    public Integer getAshHandleTypeCode() {
        return ashHandleTypeCode;
    }

    public NegotiationCremationItem setAshHandleTypeCode(Integer ashHandleTypeCode) {
        this.ashHandleTypeCode = ashHandleTypeCode;
        return this;
    }

    public String getAshHandleType() {
        return ashHandleType;
    }

    public NegotiationCremationItem setAshHandleType(String ashHandleType) {
        this.ashHandleType = ashHandleType;
        return this;
    }

    public Integer getAshWhereaboutsCode() {
        return ashWhereaboutsCode;
    }

    public NegotiationCremationItem setAshWhereaboutsCode(Integer ashWhereaboutsCode) {
        this.ashWhereaboutsCode = ashWhereaboutsCode;
        return this;
    }

    public String getAshWhereabouts() {
        return ashWhereabouts;
    }

    public NegotiationCremationItem setAshWhereabouts(String ashWhereabouts) {
        this.ashWhereabouts = ashWhereabouts;
        return this;
    }

    public NegotiationBusinessCharges getCharges() {
        return charges;
    }

    public NegotiationCremationItem setCharges(NegotiationBusinessCharges charges) {
        this.charges = charges;
        return this;
    }
}
